/*
 www.pipoisu.com
 Copyright (c) 2011.  All rights reserved.

 File     : imu.h
 Author(s): Erez Raviv

 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 (at your option) any later version.

 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

#ifndef IMU_h
#define IMU_h

#include <inttypes.h>
#include <math.h>

//----------------------------------------------------------------------------------------------------
// Definitions

#define Kp 1.0f    // proportional gain governs rate of convergence to accelerometer/magnetometer
#define Ki 0.005f   // integral gain governs rate of convergence of gyroscope biases based on magnetoometer reading

//----------------------------------------------------------------------------------------------------
// Variable declaration

extern float q0, q1, q2, q3, gz;	// quaternion elements representing the estimated orientation


//---------------------------------------------------------------------------------------------------
// Function declaration

void IMUupdate();
void AHRS();
void getAttitude();



//float getAZ();  // get roll val around Z axis - psi
//float getAY();  // get roll val around Y axis - theta
//float getAX();  // get roll val around X axis - phi

#endif
//=====================================================================================================
// End of file
//=====================================================================================================
